home *** CD-ROM | disk | FTP | other *** search
- VB Language Manager
- Easy and Efficient Multi-Language Support for Visual Basic
- Applications
-
-
- Rx for Localization Headaches!
-
- Have you ever tried to make a Visual Basic application speak more
- than one national language? If so, you've discovered the
- headache of multiple language support in VB. Strings are
- scattered all over the place in old apps, and even if strings are
- in a centralized resource, you still contend with inaccessible
- string properties in form definitions. You can do it, of course,
- if you're willing to spend hours duplicating files and writing
- tedious, repetitive code. When you're done, though, the headache
- lives on in performance and maintenance problems. Shouldn't
- there be a better way?
-
- There is! VB Language Manager manages the process from start to
- finish to make localizing any VB app, old or new, as simple as
- 1-2-3. With VB Language Manager, you maintain a single copy of
- source code yet compile in as many languages as you wish. The
- Professional Edition of VBLM can even create multi-lingual
- executables that run efficiently in whatever language the
- user selects!
-
- VB Language Manager makes localization easier and more efficient
- for all parties involved. How? By letting each concentrate on
- what he or she does best, by eliminating drudgery, and by
- simplifying logistics. With a few clicks, the developer can
- create a VBLM project file containing every string in a VB
- project that needs translation, then ship it off to the
- translator. The translator across the room or across the globe
- can fire up VBLM, load the project, enter the translations, and
- ship it back. A few more clicks and the application is up and
- running in a new language.
-
- VBLM computerizes the entire localization process, while source
- code never leaves the building. And of course, translators don't
- have to use the software: you can exchange VBLM worksheets
- instead of files, and still dramatically improve current
- practice.
-
-
- How VB Language Manager Works
-
- VB Language Manager is a sophisticated tool, but it works in
- three easy steps. First, VBLM examines a VB project, finds the
- strings in both form definitions and code, and copies them into a
- VBLM project file. Next, you use the Language Table Editor to
- create language tables and enter translations. Finally, VBLM
- builds a localized version of the project using the language
- table of your choice, and instructs VB to compile it. That's all
- there is to it.
-
- While simple in overview, though, VBLM's sophistication shows up
- in the details. Let's look at them, step by step.
-
-
- STEP 1: STRING EXTRACTION
-
- When VBLM extracts strings from a VB project, it does not blindly
- copy everything between double quotes; instead, it consults
- customizable lists of strings and properties to ignore. You can
- configure VBLM to ignore strings used as Format() and SendKeys
- arguments, for example, and those composed only of numbers and/or
- punctuation.
-
- The ignored properties list is especially powerful, as VBLM does
- not extract any string directly assigned to a listed property,
- whether assigned in a form definition or in code. This allows
- you to systematically ignore properties that do not require
- translation, e.g. "LinkTopic" and "Path." Configure the list to
- your particular needs; for example, list "FontName" when
- translating into languages that share the design language
- character set, but don't list it if you need a new character set
- so you can later define appropriate fonts (VBLM fully supports
- translation across character sets).
-
- What if VBLM does extract a string that you don't want
- translated? Just leave it untranslated, and it will be ignored
- as well.
-
- Other intelligent string extraction features include:
-
- Single Instancing: However many times a given string occurs
- in a project, it is extracted once and you translate it once.
-
- Automatic Format Conversion: VBLM needs ASCII format VB files
- to do its work; if you use binary format, VBLM starts up VB
- and makes the copies it needs, without touching the
- originals.
-
- Automatic Updates: When VBLM loads a VBLM project, it
- compares dates with the parent VB project, advises you if the
- parent has changed, and if so, reexamines the parent and
- updates the VBLM project as necessary, with no data loss.
-
- STEP 2: THE LANGUAGE TABLE EDITOR
-
- Because string extraction and build take seconds, VBLM users
- spend most of their time entering translations in the Language
- Table Editor (LTE). So we designed the LTE for ease and speed,
- and made it almost completely customizable to user needs and
- preferences. Like VBLM itself, the LTE is sophisticated yet
- simple to operate.
-
- As pictured, the LTE displays a table of "language objects," each
- with a name, value, and translation. The name identifies the
- object; the first object pictured, for example, is the second
- string in the AboutBox OKButton Click event procedure. The value
- is the string itself, and the translation is whatever the user
- types in (the translations shown were actually entered
- automatically by a translation program, but more on that later).
- Using the LTE is as simple as scrolling the table and typing
- away. But despite the operational simplicity, LTE features
- include:
-
- Independent Value and Translation Fonts: To accommodate
- translation across character sets, the font used for
- translation input and display is set independently from the
- font used to display original strings.
-
- Context Information: If the VB project is present on the
- host PC, the LTE can assist translation by displaying the
- line of source code in which the currently selected string is
- actually used (the VB project must be present because a VBLM
- project contains pointers to code but not the code itself).
-
- Advanced Search and Sort: You can search language tables by
- name, value, translation and even code context. You can nest
- sort them on up to three keys, and use either ANSI or
- Windows' language-dependent precedence.
-
- WYSIWYG and NON-WYSIWYG: You can print language tables that
- appear exactly as they appear on the screen. You can also
- format hardcopy independently, to accommodate the different
- needs of working on-screen and on-paper.
-
- Export & Import: The LTE can export and import original and
- translated strings to and from ASCII text files, allowing you
- to build project-independent dictionaries.
-
- And more!
-
-
- STEP 3: NEW LANGUAGE BUILD
-
- There's not much to say about the build step, because it's as
- simple as selecting a language table and a target directory and
- clicking OK. VBLM then reads your source files and rewrites them
- in the target directory, swapping translations for original
- strings in both code and form definitions. When done, it can
- start VB, load the new code and compile your localized version.
- You're done!
-
-
- The Professional Edition
-
- Many developers will benefit from the additional capabilities of
- the powerful Professional Edition of VB Language Manager. VBLM
- Pro can:
-
- Interface automatically with some 3rd party translation
- programs, and with a little help from you and your text
- editor, export to and import from all such programs.
-
- Width-check language tables to detect and report appearance
- and functionality problems caused by variations in string
- width across languages and fonts.
-
- Build multi-lingual versions of your VB applications that
- query the user at start up and run in their choice of
- language.
-
- WORKING WITH THIRD PARTY PROGRAMS
-
- There is a growing number of translation programs on the market,
- and VBLM Pro can cooperate with all of them.
-
- If a program can be commanded to translate the clipboard (such as
- the AssistantTM Series from MicroTac), you can teach VBLM Pro to
- control it directly. Once taught, VBLM Pro can automatically
- translate entire language tables with a single command. It's
- even smart enough to remove embedded ampersands before passing
- strings for translation.
-
- If a program can't translate the clipboard, you can use
- VBLM Pro's enhanced exporting to create translatable document
- versions of language tables. After translation and minor cutting
- and pasting with a text editor, VBLM Pro can import the
- translations.
-
- WIDTH CHECKING
-
- Languages vary dramatically in the character count required to
- communicate a given word, phrase, or sentence. English is
- relatively concise, so translated English text is usually longer
- (the Win SDK estimates the increase at up to 200%). When you
- localize an application, therefore, you need to identify any
- translated strings that overflow their containers and become
- illegible.
-
- The task is complex because character count is a lousy predictor
- of the width of a string displayed in a proportional font;
- length changes overestimate width changes in some languages,
- underestimate it in others. The only accurate way to detect
- problems is either a time-consuming visual inspection, or API
- calls to actually measure string width in the display font and
- compare it to container width.
-
- If the VB project is present on the host PC, you can click
- VBLM Pro's Width Check button and it will perform this analysis
- on an entire language table. The resulting report details width
- increases, overflows, possible overflows, and crowding, and can
- be viewed or printed in summary or detail.
-
- MULTI-LINGUAL APPLICATIONS
-
- VBLM Pro's most sophisticated feature is its ability to build
- runtime-switchable multi-lingual versions of your VB
- applications. These versions, RTSMLV's for short, learn from the
- command line or query the user for a language choice, then run in
- the language selected. And although creating a high-performance
- RTSMLV is a fairly daunting technical task, VBLM Pro makes it as
- simple as checking a box and selecting more than one language
- table at build time.
-
- Exactly how does VBLM Pro create an RTSMLV? To summarize a
- complex process:
-
- VBLM Pro constructs a compact multi-language database
- containing selected language tables.
-
- It adds two files to the project, a form for language
- selection and a module with the RTString function. This
- function takes one argument (a string index) and rapidly
- returns a string from the database. The first time it is
- called it also initializes the database, optimizing for speed
- or memory (your choice) and using the form to prompt a
- language choice if not specified on the command line.
-
- It modifies code extensively as it rewrites the project in
- the target directory. As it rewrites (continued)
-
-
-
- forms, VBLM Pro eliminates translated property strings in the
- definition section, adds a SetProperties procedure which calls
- RTString for each translated property, and calls SetProperties
- from the load event. In all files, it replaces embedded string
- literals with RTString calls.
-
- VBLM Pro even handles translated string constants, which
- obviously can't be switched at runtime. How? It comments out
- the declarations, redeclares local constants as variables
- initialized with RTString, and replaces all references to form,
- module, and global constants with you guessed it calls to
- RTString.
-
- The result is a multi-language VB app that, after a brief pause
- on startup, suffers almost no perceptible performance
- degradation, even if your app has thousands of translated strings
- and you choose to optimize the switching process for memory
- instead of speed. When you see one run, we guarantee it: you'll
- be impressed!
-
- Better yet, all runtime switching support is implemented in fully
- documented VB code that you can examine and modify however you
- see fit. You can customize the language selection form, retrieve
- the language selection from an INI file, or do whatever you want.
-
-
- But enough complicated tech-talk, because if your Visual Basic
- applications need to speak more than one language, you've got a
- simple choice:
-
- Invest the time and resources to support multiple languages
- in a programming environment that, frankly, wasn't designed
- for it. Then live with performance and maintenance
- headaches.
-
- Use VB Language Manager and add multi-language support to any
- VB app as quickly, easily, accurately, and efficiently as
- possible. With no headaches.
-
- Shouldn't you try VB Language Manager? To order, call 1-800-241-
- 8727.
-
-
-
- About WhippleWare
-
- In 1991, MIT student Ben Whipple used VB to write software for
- his doctoral research. Ben was delighted with VB but frustrated
- by the time it took to make apps run efficiently. He created
- VB CompressTM, the first and only VB optimization utility.
- VB Compress has so far received both Reader's and Editor's Choice
- Awards from the Visual Basic Programmer's JournalTM, has been
- recommended by speakers at VBITSTM and Tech-EdTM conferences, and
- is used daily by thousands of very satisfied customers. With
- VB Language Manager, Ben now re-applies both his VB code-
- processing expertise and the principles of doing business that
- made VB Compress a hit:
-
- Our customers are not only always right, they give us our
- best ideas. So when you call WhippleWare, you'll probably
- talk to the guy who writes the code. And he'll listen to
- you.
-
- We maintain no inventory, continually test and improve our
- products, and fix all problems when reported. We don't ship
- software with known bugs. Our tech support line hardly ever
- rings, and we want to keep it that way.
-
- We trust our customers and unconditionally guarantee their
- satisfaction. None of this "unless you open the envelope" or
- "if it doesn't do what we say it does" nonsense. If you
- aren't 100% satisfied for any reason at all, simply
- uninstall and return the product within 30 days and we'll
- refund everything except shipping and handling. The only
- question we'll ask: Why weren't you satisfied?
-
-
- WhippleWare
- 20 Cedar Street
- Charlestown MA 02129-2502
-
- Orders: 800-241-8727
- Phone: 617 242 2511
- Fax: 617 241 8496
- CIS: 72321,362
-
- Price (9/1/94)
- VB Language Manager Standard Edition: $100
- VB Language Manager Professional: $150
-
- S&H: $5 Priority Mail, International Air Mail
- $10 USA FedEx
- $25 Canada FedEx
- $30-35 Europe, Japan FedEx
- Other International FedEx: Ask for a quote
-